perm filename SUPER.APE[NS,SYS] blob sn#102092 filedate 1974-05-10 generic text, type C, neo UTF8
COMMENT āŠ—   VALID 00006 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	The new NEWS SYSTEM will probably include the following features:
C00007 00003	The format of a single command to APE is:
C00011 00004	Typing out and displaying stories:
C00013 00005	Display instructions generally come in pairs: for each instruction
C00018 00006	Switches:
C00022 ENDMK
CāŠ—;
The new NEWS SYSTEM will probably include the following features:

1) Storing news indefinitely; this will require about 75-125K of
disk storage per day of news kept.

2) Indexing each story by every non-trivial word in it.  (There will
be a list of perhaps 100 to 200 trivial words; these should account
for at least half the words in each story.)

3) Suffix removal.  Every non-trivial word found in a story will
have any suffixes removed before the story is categorized by that
keyword.  Each word in a keyword expression to APE will similarly
have any suffixes removed before the word is looked up in the list
of keywords.

4) Some keyword equivalences will be built into the keyword list.

5) A hierarchy of keywords, such as ANIMAL=DOG+CAT+HORSE+..., may be
included in the keyword list.  The keyword ANIMAL would then find
all stories containing any of DOG, CAT, HORSE, etc., as well as
stories containing ANIMAL.  Such automatic expansion would be
controlled by a switch which the user could set.

6) Display output for III and Data Disc terminals will be provided.

7) Follow-up stories will be categorized just like original stories.

8) A list of stories already seen by the user will be kept and he
can decide (by switch) whether he wants stories already seen to be
suppressed when encountered again.

9) The user will be able to reference stories found by the automatic
notification system.  The automatic notification system itself will
have to be revamped considerably and will of course allow
notifcation requests which include keywords not in the current
keyword list.

10) There will only be one command level for APE.  Content of a
command will imply whether it is a keyword expression, a story
selection, or a special command.  There will be
switches which can be set globally or changed just for one command.

11) Ape will maintain two story lists: the current story list, and
the old story list (usually the previous value of the current
story list).  These lists are in addition to the "seen-story list."

APE will probably keep one day's worth of data (keyword lists, story
lists, etc.) in core at a time.  Retrieving keyword lists in more
than one day's worth of news will require reading in the data file
for each day other than the one in core when the search begins.  One
day's data may be as much as 60K. The date selection switch will
allow the user to specify which days' news he is interested in.
The format of a single command to APE is:

  <sw> <output file> <sw> <KEYW EXPR> <sw>

or

  <sw> <output file> <sw> <selection> <sw>


where


  <sw> ::= {/<switch>}*
			;Zero or more switches, each preceded by a slash.
			;Switches occurring at the beginning of a
			;  command become permanent; others apply
			;  only to the command in which they appear,
			;  except for date-setting switches which are
			;  always permanent.


  <output file> ::= [<filename>←]
			;Optionally, a filename followed by a left arrow.
			;If an output file is specified, stories will be
			;  written into it.  If the /QUIET switch is
			;  active, any old file of same name will be
			;  replaced by a new one; if the /XTEND switch is
			;  active, any old file of the same name will be
			;  extended with the new stories appended to the
			;  old file.



  <KEYW EXPR>  is a keyword expression using keywords and identifiers
		 and the operands * (intersection), + (union) and
		 - (set difference).  Parentheses may be used freely.


  <selection>  is a specification of which stories in the current story
		 list are to be viewed.  The sublist becomes the new
		 current story list.  If the previous current story list
		 was specified by a <selection>, then that previous list
		 is discarded and the new <selection> is made from the
		 old story list.  Otherwise, the previous current story
		 list becomes the old story list and the <selection> is
		 made from that list.  Thus if you type two consecutive
		 commands that contain <selection>'s, then both <selection>'s
		 will be made from that same main list.


Special symbols in <KEYW EXPR>'s:

  #<decimal number>			;stories numbered n
  #<decimal number>:<decimal number>	;stories numbered from n to m


<Selection> specification:

  <decimal number>			;select n most recent stories from
					;  current story list.
  -<decimal number>			;select n oldest stories from current
					;  story list
  <decimal number>:<decimal number>	;select stories n to m from current
					;  story list
  <other old selection specifications>	;same meaning as in old version of APE.
  <blank line>				;display all stories in current story list.
Typing out and displaying stories:

APE treats displays differently from teletypes.  As a result, the
manner in which APE presents information to the user depends on
whether the program is in TTY mode (teletypes) or in DPY mode
(displays). The only terminals that can be used in DPY mode are the
Data Disc and III terminals at Stanford.  All other terminals will
always be used only in TTY mode.  The displays at Stanford can be put
into TTY mode with the /TTY switch, and they can be put back into DPY
mode with the /DPY switch.  These switches are ignored for other
terminals.

With TTY mode, stories will simply be typed out on the terminal with
no interaction from the user except when the /ASK switch is in effect.

In DPY mode, APE will display one story at a time (or as much of one
story as will fit on the screen) and wait for display instructions
from the user. The display instructions, which are all single
character instructions, tell the program which part of which story to
display next.  One of the display instructions, X, returns APE to
command level, causing it to prepare to accept a new command.
Display instructions generally come in pairs: for each instruction
which will cause the display to move forward, there is one which will
cause it to move backwards.  The main exceptions to this duality
are (1) the instruction V which redraws the display, (2) the
instruction W which causes the current story to be written out on
the output file (in /ASK mode only) and (3) the
instruction X which terminates the display instruction sequence and
returns the program to command level.  The W instruction further
requires a confirming CARRIAGE RETURN to follow it, unlike all other
display instructions.

In the duality of forward moving and backwards moving display instructions,
characters on the right half of the keyboard move the display forward and
characters on the left half of the keyboard move the display backwards.
The amount of moving in any case is either a half screen or a whole story.

"Forward" means toward newer stories or newer parts of a story.

KEY	MEANING

---- forward moving instructions

 J  --	Advance half a screen; if end of part is already in view,
	advance to first frame of next part of same story.  FOLLOF.
 K  --	Advance to next part of same story (display first frame).  FOLLOW.
 L  --	Advance to last part of current story.  FINAL.
 ;  --	Advance to last frame of current part.  BOTTOM.

 U  --	Advance half a screen; if end of part is already in view,
	advance to next story (displaying first frame).  MOVEUP.
 I  --	Advance to next story (display first frame).  AHEAD.
 O  --	Advance to last story in list.  NEWEST.

---- backwards moving instructions

 F  --	Back up half a screen; if beginning of part is already
	in view, back up to last frame of previous part of same story.  PREVF.
 D  --	Back up to previous part of same story (display first frame).  PREV.
 S  --	Back up to first part of current story.  ORIGI.
 A  --	Back up to first frame of current part.  TOP.

 R  --	Back up half a screen; if beginning of part is already
	in view, back up to last frame of previous story.  MOVEDN.
 E  --	Back up to previous story (display first frame).  BACK.
 W  --	Back up to first story in list.  OLDEST.

---- miscellaneous instructions

 V  --	Redisplay the current text.  (Mainly useful on Data Discs.)  REDRAW.

 Y  --	Write out current story into output file (/ASK mode); must be
	followed by a CARRIAGE RETURN.  If an output list is also
	specified, this story will go into it too.

 X  --	Exit from display instruction sequence.  Return to command level.
	Leaves current display untouched.  LEAVE.

 ?  --	Give a brief explanation of these display instructions.

 <decimal number>  --	Simulate execution of following instruction this
			  many times.  Frame movement instructions will
			  ignore any argument.  ARG.
Switches:

/FROM <date>
		;Specifies beginning date of date range.

/TO <date>
		;Specifies ending date of date range.

/ON <date>
		;Specifies date range.

/IN <date>
		;Specifies dae range.

;Each of the above four switches is always permanent in effect, where the
;  switch occurs before or after any keyword expression or output filename.


/ASK		;Means for each story ask user whether the story
		;  should go into the output file and output list.

/DPY		;Treat terminal as a display.
		;This is meaningful only when terminal is a DD or III.

/AGAIN		;Display/type-out stories regardless of whether the user
		;  has already seen them or not.

/FIRSTPART	;Display/type-out only the first part of each story.

/EQUAL		;Consider TWIN keywords to be equal.

/EXPAND		;Consider all sub-keywords in a structure to be equal.

/HUSH		;Don't present selected stories to the user.  This is
		;  useful if outputting stories to a file.

/SPOOL *	;Output current story list to a file to be spooled.

/XSPOOL *	;Spool current story list on the XGP.

/CHOOSE		;Allow user to decide which stories he want to see in full
		;  by showing him the first part of each story and then
		;  waiting for a response from him.

/GETNOTIF *	;Make current story list out of list of notifications.

/DELNOTIF *	;Delete all notifications.

/EXCHANGE *	;Exchange current and old story lists.

/NOTIFY		;Notify the user when a story matching the expression
		;  comes in.

/ASKDEL *	;Make current story list out of notifications, select all
		;  of them and allow deletion of individual notifications.

/DELALLREQUESTS *	;Delete all notification requests.

/DISPLAYREQUESTS *	;Display all notification requests.

/DELREQUESTS *	;Allow selective deletions or renewals of notification requests.

/XTEND		;extend output file if it already exists.

/REPLACE	;replace output file if it already exists.

/DATES		;type out the current date range.

/SHOW		;Automatically display stories found after each EXPR typed in.

/CHRONOLOGICAL	;Present stories in chronological order.


Note:  Each switch marked with a * may appear only by itself in a command.


To disable a switch, precede its name by a minus sign (-), eg, "/-DPY".

QUESTION: What about TIME-OF-DAY specifications in addition to DATE specifications?